package com.xinqi.modules.sys.complaint.dto.req;

import com.xinqi.common.core.enums.ComplaintTypeEnum;
import com.xinqi.common.green.annotation.Text;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * 聊天投诉表-请求对象-新增
 *
 * @author: yyzhenn
 * @date: 2023/04/23
 */
@Data
@Schema(description = "聊天投诉表-请求对象-新增")
public class ComplaintCreateDTO implements Serializable {

    /**
     * 被投诉人Id，逗号分隔
     */
    @NotEmpty(message = "{complaint.touserId.not.blank}")
    @Schema(description = "被投诉人Id，逗号分隔", example = "")
    private String touserId;
    /**
     * 会话ID 私聊:friend_id  群聊:group_id
     */
    @NotEmpty(message = "{complaint.targetId.not.blank}")
    @Schema(description = "会话ID 私聊:friend_id  群聊:group_id", example = "")
    private String targetId;
    /**
     * 投诉类型
     */
    @NotNull(message = "{complaint.type.not.blank}")
    @Schema(description = "投诉类型-参见枚举", example = "")
    private ComplaintTypeEnum type;
    /**
     * 投诉内容
     */
    @Text
    @Size(min = 0, max = 500, message = "{complaint.content.length.valid}")
    @Schema(description = "投诉内容", example = "")
    private String content;
    /**
     * 消息IDS  JSON格式
     */
    @Schema(description = "消息IDS  JSON格式", example = "")
    private String chatMessage;
    /**
     * 图片集 多张用JSON格式
     */
    @Schema(description = "图片集 多张用JSON格式", example = "")
    private String images;

    @Schema(title = "操作用户ID(内部流转参数，不对外)", hidden = true)
    private Long operationUserId;

}
